package com.jyxd.web.hiscz.dto.checkout_report;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.jyxd.web.hiscz.dto.CodingDto;
import com.jyxd.web.hiscz.dto.checkout_report.Report.HandleDto;
import com.jyxd.web.hiscz.dto.checkout_report.Report.order_detail.OrderDetailIdDto;
import com.jyxd.web.hiscz.dto.checkout_report.order_detail.QuantityTimingDto;
import com.jyxd.web.hiscz.dto.checkout_report.order_detail.ServiceInfoDto;
import com.jyxd.web.hiscz.dto.patient.surgery.CommentSurgeryDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

@ApiModel("医嘱明细信息")
@Data
public class OrderDetailDto {

    @JsonProperty(value = "OrderDetailIdList")
    @ApiModelProperty(name = "医嘱明细列表")
    private List<OrderDetailIdDto> OrderDetailIdList;

    @JsonProperty(value = "GroupNumber")
    @ApiModelProperty(name = "分组序号 ")
    private String groupNumber;

    @JsonProperty(value = "GroupSeqNumber")
    @ApiModelProperty(name = "组标志：\n" +
            "1开始 \n" +
            ">1 中间 \n" +
            "-1 结束 \n" +
            "0未分组 ")
    private String groupSeqNumber;

    @JsonProperty(value = "OrderType")
    @ApiModelProperty(name = "医嘱类型：\n" +
            "0-临时医嘱  \n" +
            "1-长期医嘱 ")
    private String orderType;

    @JsonProperty(value = "OrderClass")
    @ApiModelProperty(name = "医嘱类别：\n" +
            "0-药品\n" +
            "1-治疗\n" +
            "3-膳食\n" +
            "4-输血\n" +
            "5-护理\n" +
            "6-检查\n" +
            "7-检验\n" +
            "8-输液\n" +
            "14-术后医嘱\n" +
            "15-产后医嘱 ")
    private CodingDto orderClass;

    @JsonProperty(value = "FillerDepartment")
    @ApiModelProperty(name = "执行科室")
    private CodingDto fillerDepartment;

    @JsonProperty(value = "PlacerDepartment")
    @ApiModelProperty(name = "申请科室")
    private CodingDto placerDepartment;

    @JsonProperty(value = "ScheduleExecuteDatetime")
    @ApiModelProperty(name = "预执行时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date scheduleExecuteDatetime;

    @JsonProperty(value = "ExecuteDate")
    @ApiModelProperty(name = "医嘱或处方实际执行日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date executeDate;

    @JsonProperty(value = "ContentOfDoctorsAdvice")
    @ApiModelProperty(name = "医嘱内容")
    private String contentOfDoctorsAdvice;

    @JsonProperty(value = "HandleList")
    @ApiModelProperty(name = "送检信息")
    private List<HandleDto> handleList;

    @JsonProperty(value = "ServiceInfo")
    @ApiModelProperty(name = "项目信息")
    private ServiceInfoDto serviceInfo;

    @JsonProperty(value = "QuantityTiming")
    @ApiModelProperty(name = "数量/时间")
    private QuantityTimingDto quantityTiming;

    @JsonProperty(value = "Priority")
    @ApiModelProperty(name = "单个项目优先级\n" +
            "0普通1加急")
    private String priority;

    @JsonProperty(value = "OrderStatus")
    @ApiModelProperty(name = "医嘱状态：\n" +
            "-1实习医生\n" +
            "-2术中医嘱  \n" +
            "-3出院带药，\n" +
            "0待审，\n" +
            "1审核，\n" +
            "2执行，\n" +
            "3取消(DC)，\n" +
            "4停止")
    private String orderStatus;

    @JsonProperty(value = "ExtentionList")
    @ApiModelProperty(name = "医嘱扩展字段")
    private List<CodingDto> extentionList;

    @JsonProperty(value = "CommentList")
    @ApiModelProperty(name = "备注列表")
    private List<CommentSurgeryDto> commentList;
}
